package org.batallademusica.dominio;

import java.io.Serializable;
import java.lang.String;
import java.util.List;

import javax.persistence.*;

import org.batallademusica.dao.DAOFactory;
import org.batallademusica.dao.DAOImplementations;
import org.batallademusica.dao.EntityManagerFactorySingleton;

import static javax.persistence.GenerationType.IDENTITY;

/**
 * Entity implementation class for Entity: Cancion
 *
 */
@Entity
public class Cancion implements Serializable {

	private static final long serialVersionUID = 1L;
	
	
	@Id
	@GeneratedValue(strategy = IDENTITY)
	private Long pk;
	private String autor;
	private String titulo;
	private String disco;
	
	public Cancion() {
	}  
	
	public Cancion (String autor, String titulo, String disco){
		this.autor=autor;
		this.titulo=titulo;
		this.disco=disco;
	}
	public Long getPk() {
		return pk;
	}
	public void setPk(Long pk) {
		this.pk = pk;
	}
	public String getDisco() {
		return disco;
	}
	public void setDisco(String disco) {
		this.disco = disco;
	}

	 
	public String getAutor() {
		return this.autor;
	}

	public void setAutor(String autor) {
		this.autor = autor;
	}   
	public String getTitulo() {
		return this.titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}
	
	
    public static Cancion nuevaCancion(String autor, String disco, String titulo){
    	Cancion nuevaCancion=new Cancion(autor,disco,titulo);
    	DAOFactory.getInstance(DAOImplementations.JPA).getCancionDAO().crear(nuevaCancion);
    	return nuevaCancion;	
    }
    
    public static List<Cancion> recuperarTodasCanciones(){
    	EntityManager em=EntityManagerFactorySingleton.getInstance().getEntityManagerFactory().createEntityManager();
		@SuppressWarnings("unchecked")
		List<Cancion> lista=em.createQuery("select c from Cancion c").getResultList();
		em.close();
		return lista;
    }
}
